package com.hpsk.shopgen.model.genbasic.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.time.LocalDateTime;

import com.hpsk.common.CommonVo;
import com.hpsk.shopgen.model.genbasic.vo.GenBasicVo;
import io.github.linpeilie.annotations.AutoMapper;
import io.github.linpeilie.annotations.AutoMappers;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import lombok.experimental.SuperBuilder;

/**
 * <p>
 * 生成基础
 * </p>
 *
 * @author huangwang
 * @since 2025-07-07
 */
@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
@SuperBuilder
@TableName("gen_basic")
@Schema(name = "GenBasic对象", description = "生成基础")
@AutoMappers({
        @AutoMapper(target = GenBasicVo.class)
})
public class GenBasic extends CommonVo implements Serializable {

    private static final long serialVersionUID = 1L;

    @TableId("id")
    private Long id;

    @Schema(description = "主表")
    @TableField("db_table")
    private String dbTable;

    @Schema(description = "主表主键")
    @TableField("db_table_key")
    private String dbTableKey;

    @Schema(description = "插件名")
    @TableField("plugin_name")
    private String pluginName;

    @Schema(description = "模块名")
    @TableField("module_name")
    private String moduleName;

    @Schema(description = "移除表前缀")
    @TableField("table_prefix")
    private String tablePrefix;

    @Schema(description = "生成方式")
    @TableField("generate_type")
    private String generateType;

    @Schema(description = "所属模块")
    @TableField("module")
    private String module;

    @Schema(description = "上级目录")
    @TableField("menu_pid")
    private String menuPid;

    @Schema(description = "功能名")
    @TableField("function_name")
    private String functionName;

    @Schema(description = "业务名")
    @TableField("bus_name")
    private String busName;

    @Schema(description = "类名")
    @TableField("class_name")
    private String className;

    @Schema(description = "表单布局")
    @TableField("form_layout")
    private String formLayout;

    @Schema(description = "使用栅格")
    @TableField("grid_whether")
    private String gridWhether;

    @Schema(description = "包名")
    @TableField("package_name")
    private String packageName;

    @Schema(description = "作者")
    @TableField("author_name")
    private String authorName;

    @Schema(description = "排序")
    @TableField("sort_code")
    private String sortCode;

    @Schema(description = "移动端所属模块")
    @TableField("mobile_module")
    private String mobileModule;
}
